In a feedback control system used to control speed of a motor, the speed of the motor is measured and fed back to the control system. FIG. 1 shows a typical system 20 that controls speed of an AC motor 22. A rotor position sensor, such as a resolver 24 or an encoder (not shown), and a signal processing module 26 measure rotor angle θrm. A speed measurement module 28 determines motor speed ωrm from the rotor angle. A comparator module 30 determines the difference ωrm—err between the measured speed ωrm and a command speed ωrm*. The difference is fed to a speed controller module 32 that generates a torque command Te*to minimize the difference. Based on the torque command, a torque-to-current mapping module 34 generates command currents Idse*and Iqse*.
Current sensors (not shown) measure stationary phase motor currents Ias, Ibs, and Ics. A stationary to synchronous phase converter module 36 converts the currents Ias, Ibs, and Ics to d and q-axis synchronous phase currents Idse and Iqse.
A comparator module 38 determines the difference between the currents Idse*and Idse. Another comparator module 40 determines the difference between the currents Iqse*and Iqse. Based on the difference in the currents, a current controller module 42 generates synchronous phase command voltages Vdse*and Vqse*.
A synchronous to stationary phase converter module 44 converts the voltages Vdse*and Vqse*to stationary phase command voltages Va*, Vb*, and Vc*. Based on the command voltages, an inverter module 46 generates 3-phase voltages that drive the motor at the command speed.
The motor speed should be accurately measured because errors in measured speed are fed back to the control system and can cause speed fluctuations, system instability, and motor heating. Due to factors such as eccentricity of position sensor, inaccuracy of electrical module, etc., the rotor angle typically has a periodic error, as shown in FIG. 2. Consequently, the motor speed calculated from the rotor angle has a fluctuating error called ripple, as shown in FIG. 3. The ripple is fed back to the speed controller module and distorts the command currents, as shown in FIG. 4. The ripple in command currents, in turn, distorts the command voltages that drive the motor. As a result, the motor speed fluctuates. Consequently, the motor currents that are measured and fed back to the control system contain ripple, as shown in FIG. 4. This renders the control system unstable. The ripple in motor speed also causes heating and loss due to harmonics. Notably, the magnitude of the ripple is proportional to the motor speed. Therefore, motor speed fluctuation, control system instability, and motor heating are high at high motor speeds.
Traditionally, the ripple is minimized by using a low-pass filter, as shown in FIG. 5. The cut-off frequency of the filter, however, cannot be set so low as to completely eliminate the ripple because the low cut-off frequency causes delay in the feedback loop. Alternately, the ripple can also be minimized by lowering the control bandwidth of the speed controller, current control, and a speed observer. This method, however, sacrifices control dynamics and is therefore inadequate for speed control of high-speed motors.